/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Clases;

import Dominio.*;
import Persistencia.persistencia;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import javax.swing.JOptionPane;
import org.hibernate.Session;

/**
 *
 * @author Grupo 4
 */
public class Controlador {

    public static persistencia PERSISTENCIA;
    private Boliche bol;
    //private Restaurant res;
    private Clientes cli;
    private Empresa empresa;
    private Categorias categoria;
    

    public Controlador() {
        PERSISTENCIA = new persistencia();
    }

    public static persistencia getPERSISTENCIA() {
        return PERSISTENCIA;
    }

    public boolean validarUsuario(String usuario, byte[] clave) {
        boolean hecho = false;
        Usuarios user = null;
        String sentencia = "from Usuario where NombreUsuario='" + usuario + "'";
        try {
            Session session = null;

            org.hibernate.Transaction tx = session.beginTransaction();

            //operacion = ayudar.beginTransaction();
            List<Usuarios> listaUsuarios = (List<Usuarios>) session.createQuery(sentencia).list();
            if (!listaUsuarios.isEmpty()) {
                user = listaUsuarios.get(0);
                hecho = true;
            } else {
                System.out.println("fracaso");
            }

        } catch (Exception e) {
            System.out.println("error");
        }
        return hecho;
    }
//    public void crearRestaurant(int nrsuc,String nomb,String direcc){
//        if (!existeRestaurant()){
//           Restaurant unRestaurant= new Restaurant(nrsuc, nomb, direcc/*,PERSISTENCIA*/);
//           //unRestaurant.guardarRestaurant(unRestaurant);
//        }else{
//            JOptionPane.showMessageDialog(null, "Ya existe el Restaurant");
//            //throw new GTUException("Ya existe la Universidad  :"+getUniversidad()+",  puede crear solo una!" );
//        }
//    }
//
//
//    public void CrearReserva(int nroReserv,Date fecha,String hora,String estado,Restaurant rest,Cliente client, Mesa mesa){
//        res=rest;
//        res.crearReserva(nroReserv,fecha,hora,estado,rest,client,mesa);
//    }
//
//    public void ConfirmarReserva(Reserva reser,Restaurant rest){
//        res=rest;
//        res.ConfirmarReserva(reser);
//    }
//
//    public void CancelarReserva(Reserva reser,Restaurant rest){
//        res=rest;
//        res.CancelarReserva(reser);
//    }
//
//    public void CrearMesa(int nromesa,boolean fum,boolean est,int cantper, Restaurant rest){
//        res=rest;
//        res.crearMesa(nromesa, fum,est,cantper, rest);
//
//    }
//
//    public void actualizarMesa(int nromesa,boolean fum,boolean est,int cantper, Restaurant rest){
//        res=rest;
//        res.actualizarMesa(nromesa, fum, est, cantper, rest);
//    }
//
//

    public boolean existeUsuario(String nombre) {
        boolean usuario = false;
        if (Controlador.getPERSISTENCIA().getUsuarios(nombre).size() > 0) {
            usuario = true;
        }

        return usuario;

    }

//    public void crearCliente(String Apellido, String Nombre, String Apodo, Date FechaNacimiento,String Mail,String Celular, String Empresa) {
//        CuentaCorrientes unaCtaCte=new CuentaCorrientes();
//        
//        byte[] foto = new byte[1000];
//        byte[] huella= new byte[1000];
//        Clientes unCliente = new Clientes(Apellido, Nombre, Apodo,huella, FechaNacimiento,Mail,Celular,Empresa,'TRUE','ACTIVO',foto,);
//        if (!existeCliente(unCliente)) {
////              System.out.print("Se dispara mi excepcion");
//            unCliente.guardarCliente(unCliente);
//            agregarCliente(unCliente);
////       }else{
////              //JOptionPane.showMessageDialog(null, "El Cliente ya existe");
////
//        }
//    }
//
//    public boolean existeCliente(Cliente client) {
//
//        //List as =this.getClientes();
//
//        boolean tmpres = false;
//        //Iterator it=as.iterator();
//        Iterator it = Clientes.iterator();
//        while (it.hasNext()) {
//            Cliente c = (Cliente) it.next();
//            //  System.out.println("Cliente que tengo "+c.getDNI());
//            if (client.equals(c)) {
//                System.out.println("Existe el cliente   =" + String.valueOf(c.equals(client)));
//                tmpres = true;
//                break;
//            }
//        }
//        return tmpres;
//
//    }
//
//    public Restaurant getRest() {
//        return res;
//    }
//
    public Boliche getBoliche() {

        Boliche boliche = (Boliche) Controlador.getPERSISTENCIA().getBoliches().get(0);
        this.bol = boliche;
        return boliche;

    }
    
    public Empresa getEmpresa(String DescripcionEmpresa) {

        Empresa unaEmpresa= (Empresa) Controlador.getPERSISTENCIA().getUnaEmpresa(DescripcionEmpresa).get(0);
        this.empresa = unaEmpresa;
        return unaEmpresa;

    }
    public Categorias getCategoria(String DescripcionCategoria) {

        Categorias unaCategoria= (Categorias) Controlador.getPERSISTENCIA().getUnaCategoria(DescripcionCategoria).get(0);
        this.categoria = unaCategoria;
        return unaCategoria;

    }
    
    
//
//    public Restaurant getUnRestaurant(int nrosuc) {
//
//        Restaurant resto = (Restaurant) Controlador.getPERSISTENCIA().getRestaurantes().get(nrosuc);
//        this.res = resto;
//        return resto;
//
//    }
//
    public void crearCliente(Clientes unCliente){
        
        this.PERSISTENCIA.insert(unCliente);
        

        //Univ.crearFacultad(Univ, Codigofacultad, Nombrefacultad, Descripcionfacultad, Direccion, Telefono);
    }
    
    public void crearUsuario(Usuarios unUsuario){
        
        this.PERSISTENCIA.insert(unUsuario);
        

        //Univ.crearFacultad(Univ, Codigofacultad, Nombrefacultad, Descripcionfacultad, Direccion, Telefono);
    }
    
    public Usuarios getUnUsuario(String nombreU){
       return (Usuarios) this.PERSISTENCIA.getUnUsuario(nombreU);
    }
}
